# lib.format

- **类型：** `'esm' | 'cjs' | 'umd' | 'mf' | 'iife'`
- **默认值：** `'esm'`
- **命令行：** `--format <format>`（例如 `--format umd`）

指定生成的 JavaScript 产物的输出格式。

在不同的产物格式下，Rslib 默认使用的 Rspack 的 [output.library.type](https://rspack.rs/zh/config/output#outputlibrarytype) 值如下：

- `esm`：[modern-module](https://rspack.rs/zh/config/output#type-modern-module)

::: info
你可以通过设置 [lib.experiments.advancedEsm](/config/lib/experiments#experimentsadvancedesm) 来启用 Rspack 实验性的 ESM 输出，以生成高质量、对静态分析更友好并且支持代码分割的 ESM 输出。
:::

- `cjs`：[commonjs-static](https://rspack.rs/zh/config/output#type-commonjs-static)
- `umd`：[umd](https://rspack.rs/zh/config/output#type-umd)
- `iife`：开启了 [output.iife](https://rspack.rs/zh/config/output#outputiife) 的 [modern-module](https://rspack.rs/zh/config/output#type-modern-module)

更多详情请参考 [输出格式](/guide/basic/output-format) 和 [模块联邦](/guide/advanced/module-federation)。

::: note
`umd`、`mf` 以及 `iife` 格式仅在 [bundle](/config/lib/bundle) 设置为 `true` 时有效。
:::
